home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 April / Macworld (1999-04).dmg / Shareware World / Comms & Internet / IP->Clipboard / Source / IPtoClip.c next >
C/C++ Source or Header  |  1999-01-30  |  1KB  |  92 lines

  1. #include <Scrap.h>
  2. #include <OpenTransport.h>
  3. #include <OpenTptInternet.h>
  4. #include <OSUtils.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <stdarg.h>
  8. #include <string.h>
  9. #include <Sound.h>
  10.  
  11.  
  12. void main( void )
  13. {
  14.     
  15.     OSStatus *err;
  16.     char ip[15];
  17.     
  18.     unsigned short counter;
  19.     Boolean end = false;
  20.         
  21.     InetInterfaceInfo *info;
  22.     
  23.  
  24.     err = malloc(sizeof(OSStatus));
  25.     info = malloc(sizeof(InetInterfaceInfo));
  26.     
  27.  
  28. //InitOT
  29.     if( InitOpenTransport() != kOTNoError )
  30.     {
  31.         SysBeep(30);
  32.         ExitToShell();
  33.         }
  34.     
  35.     OTOpenInternetServices ( kDefaultInternetServicesPath, 0, err);
  36.     
  37. //beep at user if there is an error, and quit
  38.     if( *err != kOTNoError )
  39.     {
  40.         SysBeep(30);
  41.         SysBeep(30);
  42.         ExitToShell();
  43.         }
  44.  
  45.     //Get your IP and put it in the string IP.
  46.     OTInetGetInterfaceInfo( info, kDefaultInetInterface );
  47.     
  48.     OTInetHostToString( info->fAddress, ip );
  49.     
  50.     
  51.     counter = 0;
  52.     
  53.     //make sure there are no weird chars
  54.     while( !end )
  55.     {
  56.         
  57.         switch( ip[counter] )
  58.         {
  59.         
  60.             case '0':
  61.             case '1':
  62.             case '2':
  63.             case '3':
  64.             case '4':
  65.             case '5':
  66.             case '6':
  67.             case '7':
  68.             case '8':
  69.             case '9':
  70.             case '.':
  71.             counter++;
  72.             if( counter == 15 )
  73.             end = true;
  74.             break;
  75.             default:
  76.             end = true;//so you will end the counter so it will end the for statement, and then you will know the string length is 1 less then the counter.
  77.             break;
  78.         }
  79.     
  80.     }                
  81.  
  82.                 ZeroScrap();
  83.                 PutScrap( counter, 'TEXT', ip );
  84.             
  85.     ExitToShell();
  86.     
  87. }    
  88.  
  89.     
  90.     
  91.     
  92.